/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Modelo;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
import java.util.TimerTask;

/**
 *
 * @author Bepitic
 */
public class Avisar1hTimer {
    UsuarioRegistrado user;
    Timer timer;
    ArrayList<EntradaParaUsuario> l_entr;
    
    
    public Avisar1hTimer(UsuarioRegistrado user) {
        this.user = user;
        programarAvisado();
    }
    
    public void programarAvisado(){
        
        int retardo_inicial =  1000; //en milisegundos
        int periodo = 300000; //en milisegundos
        periodo = 10000;
        timer = new Timer();
        TimerTask timerTask; 
        timerTask = new TimerTask()
{
   @Override
   public void run() 
   {
       System.out.println("Mirando si hay pelis para avisar a "+ user.getNombre());
       l_entr = user.getEntradas();
       if (l_entr != null){
            System.err.println("No hay entradaas");
//            System.exit(0);
        }
       Calendar fecha = new GregorianCalendar();
       int anyo = fecha.get(Calendar.YEAR);
       int mes = fecha.get(Calendar.MONTH);
       int dia = fecha.get(Calendar.DAY_OF_MONTH);
       int hora = fecha.get(Calendar.HOUR_OF_DAY);
       anyo = anyo * 10000;
       
       mes = (mes+1) * 100;
       int fechaactual = anyo + dia + mes;
       
       for(EntradaParaUsuario e : l_entr){
           System.out.println("Encontrado una entrada: coal");
           if( e.getFecha() <= fechaactual && !e.getAvisado()){
               String[] hora_s;
               String hor;      
               hor = e.getHora();
               hora_s = hor.split(":");
               
               System.out.println(""+Integer.parseInt(hora_s[0]) +"-" + hora + "-----Avisado-----");
                if( (Integer.parseInt(hora_s[0]) - hora) <= 1 && (Integer.parseInt(hora_s[0]) - hora) >= 0 )
                {
                    Vista.Error err = new Vista.Error("Esta a punto de comenzar :"+e.getNombrePelicula());
                    e.setAvisado(true);
                    
                }
               
           }
       }
   }
}; 
        timer.schedule(timerTask, retardo_inicial, periodo);
    }
    
    
}
